package com.baor.distribution.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.baor.common.core.domain.R;
import com.baor.common.utils.DateUtils;
import com.baor.distribution.domain.*;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baor.distribution.mapper.TDistributorMapper;
import com.baor.distribution.service.ITDistributorService;

/**
 * 分销Service业务层处理
 * 
 * @author ruoyi
 * @date 2025-07-18
 */
@Service
public class TDistributorServiceImpl implements ITDistributorService 
{
    @Autowired
    private TDistributorMapper tDistributorMapper;
    //销售商列表
    @Override
    public R distributorList(Map<String, Object> params) {

        // 1.从Map中获取分页参数
        int pageNum = (int) params.getOrDefault("pageNum", 1);
        int pageSize = (int) params.getOrDefault("pageSize", 10);

        PageHelper.startPage(pageNum, pageSize);

        // 2. 执行查询（PageHelper会自动拦截并分页）
        List<DistributorVO> list = tDistributorMapper.distributorList(params);

        // 3. 获取分页信息
        PageInfo<DistributorVO> pageInfo = new PageInfo<>(list);

        // 4. 封装分页结果（假设R是统一返回格式）
        Map<String, Object> result = new HashMap<>();
        result.put("list", list);           // 数据列表
        result.put("total", pageInfo.getTotal()); // 总记录数
        result.put("pages", pageInfo.getPages()); // 总页数
        result.put("pageNum", pageInfo.getPageNum()); // 当前页码
        result.put("pageSize", pageInfo.getPageSize()); // 每页大小

        return R.ok(result);
    }
//添加分销商
    /**
     * 新增分销
     *
     * @param tDistributor 分销
     * @return 结果
     */
    @Override
    public int selectTDistributorList(TDistributor tDistributor)
    {
        tDistributor.setCreateTime(DateUtils.getNowDate());
        return tDistributorMapper.selectTDistributorList(tDistributor);
    }
    //冻结
    /**
     * 修改分销
     *
     *  分销
     * @return 结果
     */
    @Override
    public int updateDisStatus(int disId)
    {
        return tDistributorMapper.updateDisStatus(disId);
    }
    //申请分销商列表
    @Override
    public R applyDislist(Map<String, Object> params) {
        // 1.从Map中获取分页参数
        int pageNum = (int) params.getOrDefault("pageNum", 1);
        int pageSize = (int) params.getOrDefault("pageSize", 10);

        PageHelper.startPage(pageNum, pageSize);

        List<ApplyDisVO> list = tDistributorMapper.applyDislist(params);
        // 3. 获取分页信息
        PageInfo<ApplyDisVO> pageInfo = new PageInfo<>(list);

        // 4. 封装分页结果（假设R是统一返回格式）
        Map<String, Object> result = new HashMap<>();
        result.put("list", list);           // 数据列表
        result.put("total", pageInfo.getTotal()); // 总记录数
        result.put("pages", pageInfo.getPages()); // 总页数
        result.put("pageNum", pageInfo.getPageNum()); // 当前页码
        result.put("pageSize", pageInfo.getPageSize()); // 每页大小

        return R.ok(result);
    }
    //申请分销商审核
    @Override
    public int applyDisAudit(GoodsInfoVO tDistributor) {
        return tDistributorMapper.applyDisAudit(tDistributor);
    }
    //分销商等级下拉框
    @Override
    public R disGrage() {
        return R.ok(tDistributorMapper.disGrage());
    }
    //更换上级推荐人
    @Override
    public int upParent(GoodsInfoVO tDistributor) {
        return tDistributorMapper.upParent(tDistributor);
    }
    //分销设置
    @Override
    public int disSetting(DisSettingVO disSettingVO) {
        return tDistributorMapper.disSetting(disSettingVO);
    }
    //分销商等级列表
    @Override
    public R disGradeList(Map<String, Object> params) {
        // 1.从Map中获取分页参数
        int pageNum = (int) params.getOrDefault("pageNum", 1);
        int pageSize = (int) params.getOrDefault("pageSize", 10);

        PageHelper.startPage(pageNum, pageSize);

        List<TGradeVO> list = tDistributorMapper.disGradeList(params);
        // 3. 获取分页信息
        PageInfo<TGradeVO> pageInfo = new PageInfo<>(list);

        // 4. 封装分页结果（假设R是统一返回格式）
        Map<String, Object> result = new HashMap<>();
        result.put("list", list);           // 数据列表
        result.put("total", pageInfo.getTotal()); // 总记录数
        result.put("pages", pageInfo.getPages()); // 总页数
        result.put("pageNum", pageInfo.getPageNum()); // 当前页码
        result.put("pageSize", pageInfo.getPageSize()); // 每页大小

        return R.ok(result);
    }

    @Override
    public int addGrade(TGradeVO tGradeVO) {
        return tDistributorMapper.addGrade(tGradeVO);
    }

    @Override
    public int deGrade(TGradeVO tGradeVO) {
        return tDistributorMapper.deGrade(tGradeVO);
    }
//代理商列表...............
    @Override
    public R agentList(Map<String, Object> params) {
        // 1.从Map中获取分页参数
        int pageNum = (int) params.getOrDefault("pageNum", 1);
        int pageSize = (int) params.getOrDefault("pageSize", 10);

        PageHelper.startPage(pageNum, pageSize);

        // 2. 执行查询（PageHelper会自动拦截并分页）
        List<TAgentVO> list = tDistributorMapper.agentList(params);

        // 3. 获取分页信息
        PageInfo<TAgentVO> pageInfo = new PageInfo<>(list);

        // 4. 封装分页结果（假设R是统一返回格式）
        Map<String, Object> result = new HashMap<>();
        result.put("list", list);           // 数据列表
        result.put("total", pageInfo.getTotal()); // 总记录数
        result.put("pages", pageInfo.getPages()); // 总页数
        result.put("pageNum", pageInfo.getPageNum()); // 当前页码
        result.put("pageSize", pageInfo.getPageSize()); // 每页大小

        return R.ok(result);
    }

    @Override
    public int addAgent(TAgentVO tAgentVO) {
        return tDistributorMapper.addAgent(tAgentVO);
    }

    @Override
    public int agentFreeze(int agentId) {
        return tDistributorMapper.agentFreeze(agentId);
    }
//编辑代理商....................................
    @Override
    public int editAgent(Map<String, Object> params) {
        return tDistributorMapper.editAgent(params);
    }
//代理设置......................................
    @Override
    public int agentSetting(Map<String, Object> params) {
        return tDistributorMapper.agentSetting(params);
    }

    @Override
    public R proxyList(Map<String, Object> params) {
        // 1.从Map中获取分页参数
        int pageNum = (int) params.getOrDefault("pageNum", 1);
        int pageSize = (int) params.getOrDefault("pageSize", 10);

        PageHelper.startPage(pageNum, pageSize);

        // 2. 执行查询（PageHelper会自动拦截并分页）
        List<TProxyVO> list = tDistributorMapper.proxyList(params);

        // 3. 获取分页信息
        PageInfo<TProxyVO> pageInfo = new PageInfo<>(list);

        // 4. 封装分页结果（假设R是统一返回格式）
        Map<String, Object> result = new HashMap<>();
        result.put("list", list);           // 数据列表
        result.put("total", pageInfo.getTotal()); // 总记录数
        result.put("pages", pageInfo.getPages()); // 总页数
        result.put("pageNum", pageInfo.getPageNum()); // 当前页码
        result.put("pageSize", pageInfo.getPageSize()); // 每页大小

        return R.ok(result);
    }
//编辑代理等级
    @Override
    public int editProxy(Map<String, Object> params) {
        return tDistributorMapper.editProxy(params);
    }

//删除代理等级
    @Override
    public int deProxy(Map<String, Object> params) {
        return tDistributorMapper.deProxy(params);
    }

    @Override
    public R overviewList() {
        return R.ok(tDistributorMapper.overviewList());
    }

    @Override
    public R brokerList(Map<String, Object> params) {
        // 1.从Map中获取分页参数
        int pageNum = (int) params.getOrDefault("pageNum", 1);
        int pageSize = (int) params.getOrDefault("pageSize", 10);

        PageHelper.startPage(pageNum, pageSize);

        // 2. 执行查询（PageHelper会自动拦截并分页）
        List<TTeamDividendVO> list = tDistributorMapper.brokerList(params);

        // 3. 获取分页信息
        PageInfo<TTeamDividendVO> pageInfo = new PageInfo<>(list);

        // 4. 封装分页结果（假设R是统一返回格式）
        Map<String, Object> result = new HashMap<>();
        result.put("list", list);           // 数据列表
        result.put("total", pageInfo.getTotal()); // 总记录数
        result.put("pages", pageInfo.getPages()); // 总页数
        result.put("pageNum", pageInfo.getPageNum()); // 当前页码
        result.put("pageSize", pageInfo.getPageSize()); // 每页大小

        return R.ok(result);
    }
//团队信息

    @Override
    public R teamList(Map<String, Object> params) {
        // 1.从Map中获取分页参数
        int pageNum = (int) params.getOrDefault("pageNum", 1);
        int pageSize = (int) params.getOrDefault("pageSize", 10);

        PageHelper.startPage(pageNum, pageSize);

        // 2. 执行查询（PageHelper会自动拦截并分页）
        List<TeamVO> list = tDistributorMapper.teamList(params);

        // 3. 获取分页信息
        PageInfo<TeamVO> pageInfo = new PageInfo<>(list);

        // 4. 封装分页结果（假设R是统一返回格式）
        Map<String, Object> result = new HashMap<>();
        result.put("list", list);           // 数据列表
        result.put("total", pageInfo.getTotal()); // 总记录数
        result.put("pages", pageInfo.getPages()); // 总页数
        result.put("pageNum", pageInfo.getPageNum()); // 当前页码
        result.put("pageSize", pageInfo.getPageSize()); // 每页大小

        return R.ok(result);
    }
//分销商品
    @Override
    public R goodsList(Map<String, Object> params) {
        // 1.从Map中获取分页参数
        int pageNum = (int) params.getOrDefault("pageNum", 1);
        int pageSize = (int) params.getOrDefault("pageSize", 10);

        PageHelper.startPage(pageNum, pageSize);

        // 2. 执行查询（PageHelper会自动拦截并分页）
        List<GoodsVO> list = tDistributorMapper.goodsList(params);

        // 3. 获取分页信息
        PageInfo<GoodsVO> pageInfo = new PageInfo<>(list);

        // 4. 封装分页结果（假设R是统一返回格式）
        Map<String, Object> result = new HashMap<>();
        result.put("list", list);           // 数据列表
        result.put("total", pageInfo.getTotal()); // 总记录数
        result.put("pages", pageInfo.getPages()); // 总页数
        result.put("pageNum", pageInfo.getPageNum()); // 当前页码
        result.put("pageSize", pageInfo.getPageSize()); // 每页大小

        return R.ok(result);
    }
    @Override
    public R goodsListInfo(Map<String, Object> params) {
        return R.ok(tDistributorMapper.goodsListInfo(params));
    }
//分销订单
    @Override
    public R disOrderList(Map<String, Object> map) {
        // 1.从Map中获取分页参数
        int pageNum = (int) map.getOrDefault("pageNum", 1);
        int pageSize = (int) map.getOrDefault("pageSize", 10);

        PageHelper.startPage(pageNum, pageSize);

        // 2. 执行查询（PageHelper会自动拦截并分页）
        List<TRecharfgeVO> list = tDistributorMapper.disOrderList(map);

        // 3. 获取分页信息
        PageInfo<TRecharfgeVO> pageInfo = new PageInfo<>(list);

        // 4. 封装分页结果（假设R是统一返回格式）
        Map<String, Object> result = new HashMap<>();
        result.put("list", list);           // 数据列表
        result.put("total", pageInfo.getTotal()); // 总记录数
        result.put("pages", pageInfo.getPages()); // 总页数
        result.put("pageNum", pageInfo.getPageNum()); // 当前页码
        result.put("pageSize", pageInfo.getPageSize()); // 每页大小

        return R.ok(result);
    }
//分销商详情
    @Override
    public R disInfo(Map<String, Object> map) {
        return R.ok(tDistributorMapper.disInfo(map));
    }
//分销商详情账户

    @Override
    public R disInfoAcc(Map<String, Object> map) {
        return R.ok(tDistributorMapper.disInfoAcc(map));
    }



    @Override
    public R disOrderInfo(Map<String, Object> map) {
        return R.ok(tDistributorMapper.disOrderInfo(map));
    }

    /**
     * 查询分销
     * 
     * @param disId 分销主键
     * @return 分销
     */
    @Override
    public GoodsInfoVO selectTDistributorByDisId(Long disId)
    {
        return tDistributorMapper.selectTDistributorByDisId(disId);
    }

    /**
     * 查询分销列表
     * 
     * @param tDistributor 分销
     * @return 分销
     */
    @Override
    public List<GoodsInfoVO> selectTDistributorList(GoodsInfoVO tDistributor)
    {
        return tDistributorMapper.selectTDistributorList(tDistributor);
    }
















}
